#ifndef JSON_PARSER_H
#define JSON_PARSER_H

#include "./JParserNamespace.h"
#include "./JNode.h"

#include <string>

MY_JSON_PARSER_NAMESPACE_BEGIN
class JSONParser
{
public:
	/* 公有构造及析构函数 */
	// 带参构造，指定 JSON 文本
	JSONParser(const std::string& json_text);
public:
	/* 公有功能性函数 */
	// 解析
	myjson::JNode& parse();
private:
	/* 私有辅助性函数 */
	myjson::JNode* parseObject();
	std::string* parseString();
	myjson::JNode* parseArray();
	myjson::JNode* parseNullOrTrueOrFalse();
	myjson::JNode* parseNumber();
	myjson::JNode* parseValue();
};
MY_JSON_PARSER_NAMESPACE_END

#endif // !JSON_PARSER_H
